Keyboard adaptive haptic response

ABSTRACT

Various embodiments provide a keyboard that adaptively provides haptic feedback to a user. In at least some embodiments, an actuation of a key or keyboard element of the keyboard is detected. This can be accomplished by detecting the closure of an associated switch caused by a user depressing the key or keyboard element. In response to detecting the actuation, an electrically-deformable material is utilized as an actuating mechanism to impart single or multi-vectored movement to the key or keyboard element according to drive parameters. This movement produces a perceived acceleration of the key or keyboard element, thus providing haptic feedback which simulates a “snapover” effect.

RELATED APPLICATION

This application is related to and claims priority to U.S. patentapplication Ser. No. 12/371,301, filed on Feb. 13, 2009, which claimspriority to U.S. Provisional Application No. 61/029,195, filed on Feb.15, 2008, the disclosures of which is incorporated by reference hereinin its entirety.

BACKGROUND

Traditional keyboards and keyboard techniques typically rely on theforce input of a user depressing a key or keyboard element in order todeliver a corresponding haptic response confirming the key's actuation(i.e., switch closure). This haptic feedback, commonly referred to as a“snapover” effect, is produced on these traditional keyboards by theuser sufficiently depressing the top portion of the key or keyboardelement's assembly such that a corresponding rubber dome in the assemblycollapses and reforms.

Since the haptic feedback produced on traditional keyboards depends onthe position of the top portion, the feedback is inherent in themovement of the key or keyboard element's assembly and correlates withthe speed by which the key or keyboard element is depressed. That is tosay, the haptic feedback occurs faster when the key or keyboard elementis pressed faster, and slower when the key or keyboard element ispressed slower. Missing however, are effective techniques for simulatingthis type of feedback with non-traditional keyboard techniques which donot employ rubber dome assemblies.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Various embodiments provide a keyboard, such as a physical or virtualkeyboard for example, that adaptively provides haptic feedback to auser. In at least some embodiments, an actuation of a key or keyboardelement of the keyboard is detected. This can be accomplished bydetecting closure of an associated switch caused by a user depressingthe key or keyboard element. In response to detecting the actuation, anelectrically-deformable material is utilized as an actuating mechanismto impart single or multi-vectored movement to the key or keyboardelement according to drive parameters. This movement produces aperceived acceleration of the key or keyboard element, thus providinghaptic feedback which simulates a “snapover” effect.

In one or more embodiments, the drive parameters can be selected via auser interface. Alternatively or additionally, the drive parameters canbe automatically ascertained from data associated with another actuation(s) of the key or keyboard element. In at least some embodiments, thisdata can indicate the duration of one or more stages associated with thekey or keyboard element being depressed and released.

In one or more embodiments, the single or multi-vectored movement can bedynamically imparted while a user is typing on the key or keyboardelement, and/or on another key or keyboard element of the keyboard.

In one or more embodiments, at least one of the drive parameters candesignate the duration of a phase(s) of the single or multi-vectoredmovement. This can include a phase associated with movement of the keyor keyboard element in a particular direction and/or with a delay beforeor after the movement.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the drawings to reference likefeatures.

FIG. 1 illustrates an example system in accordance with one or moreembodiments.

FIG. 2 illustrates a top plane view of an example key or keyboardelement in accordance with one or more embodiments.

FIG. 3 illustrates the view of the FIG. 1 key or keyboard element, takenalong line 2-2 in FIG. 1.

FIG. 4 illustrates a key or keyboard element in accordance with one ormore embodiments.

FIG. 5 illustrates a key or keyboard element in accordance with one ormore embodiments.

FIG. 6 illustrates a key or keyboard element in accordance with one ormore embodiments.

FIG. 7 illustrates example sequential phases associated with movement ofa key or keyboard element in accordance with one or more embodiments.

FIG. 8 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 9 illustrates an example user interface in accordance with one ormore embodiments.

DETAILED DESCRIPTION Overview

Various embodiments provide a keyboard, such as a physical or virtualkeyboard for example, that adaptively provides haptic feedback to auser. Without limitation, the keyboard can include one or more physicalkeys or touch elements, virtual keys or touch elements, e.g., an icon orother indicia, or any combination thereof. In at least some embodiments,an actuation of a key or keyboard element of the keyboard is detected.This can be accomplished by detecting the closure of an associatedswitch caused by a user depressing the key or keyboard element. Inresponse to detecting the actuation, an electrically-deformable materialis utilized as an actuating mechanism to impart single or multi-vectoredmovement to the key or keyboard element according to drive parameters.This movement produces a perceived acceleration of the key or keyboardelement, thus providing haptic feedback which simulates a “snapover”effect.

In one or more embodiments, the drive parameters can be selected via auser interface. Alternatively or additionally, the drive parameters canbe automatically ascertained from data associated with another actuation(s) of the key or keyboard element. In at least some embodiments, thisdata can indicate the duration, amplitude, or other characteristic ofone or more stages associated with the key or keyboard element beingdepressed and released.

In one or more embodiments, the single or multi-vectored movement can bedynamically imparted while a user is typing on the key or keyboardelement, and/or on another key or keyboard element of the keyboard.

In one or more embodiments, at least one of the drive parameters candesignate the duration of a phase(s) of the single or multi-vectoredmovement. This can include a phase associated with movement of the keyor keyboard element in a particular direction and/or with a delay beforeor after the movement.

In the discussion that follows, a section entitled “Example System” isprovided and describes a system that can be used in accordance with oneor more embodiments. Next, a section entitled “Example Key or KeyboardElement” is provided and describes but one example of a key or keyboardelement in accordance with one or more embodiments. Next, a sectionentitled “Example Sequential Phases” is provided and describes examplephases associated with movement of a key or keyboard element inaccordance with one or more embodiments. Next, a section entitled“Example Method” is provided and describes a method in accordance withone or more embodiments. Lastly, a section entitled “Example UserInterface” is provided and describes but one example of a user interfacein accordance with one or more embodiments.

Example System

FIG. 1 illustrates an example system in accordance with one or moreembodiments, generally at 100. In this example, system 100 includes acomputing device 102 and a keyboard unit 104.

Computing device 102 may be configured as any suitable type of device ordevices such as, without limitation, a desktop computer, laptopcomputer, personal digital assistant (PDA), smart phone, gaming device,or any combination thereof. Computing device 102 includes one or moreprocessors 106, one or more memory and/or storage component(s) 108, andone or more applications 110 that reside on memory and/or storagecomponent(s) 108 and that are executable by processor(s) 106.

Memory and/or storage component(s) 108 represents one or morecomputer-readable media. Computer-readable media can include, by way ofexample and not limitation, all forms of volatile and non-volatilememory and/or storage media for storage of information such ascomputer-readable instructions. Such media can include ROM, RAM, flashmemory, hard disk, removable media, and the like.

Application(s) 110, in turn, can include any suitable type ofapplication such as, without limitation, an application associated withstoring, presenting, receiving, sending, and/or managing informationassociated with keyboard unit 104. For example, application(s) 110 canprovide a user interface presenting selectable controls for setting,adjusting, or otherwise managing parameters associated with providinghaptic feedback via movement of individual key or keyboard elements ofkeyboard unit 104.

Computing device 102 also includes a device input/output component 112which enables communication between computing device 102 and variousinput/output devices, including keyboard unit 104. Any suitablecomponent can be used such as, without limitation, Universal Serial Bus(USB) modules, Bluetooth modules, RS232, PS2, CAN, TCPIP, and the like.

Keyboard unit 104 includes, in this example, a host input/outputcomponent 114 which enables communication between keyboard unit 104 andcomputing device 102. Any suitable component can be used such as,without limitation, USB modules, Bluetooth modules, RS232, PS2, CAN,TCPIP, and the like. Keyboard unit 104 further includes a microprocessor116, a switch interface 118, a switch 120, an actuator interface 122, anactuator 124, and an adaptive response component 126. These variouscomponents can be implemented in connection with any suitable hardware,software, firmware, or combination thereof. In at least someembodiments, components of the keyboard unit can be implemented as anapplication specific integrated circuit or ASIC.

In operation, switch 120 can be configured to sense when a particularkey or keyboard element is actuated. Typically, this involves the key orkeyboard element being depressed. However, any suitable sensingtechnique can be used. For example, a sensor, such as a capacitivesensor, projected field, or the like might be utilized to detect orsense the proximity of an object, e.g., a user's finger, within acertain distance of the key or keyboard element. Switch 120 and/oranother component(s) of keyboard unit 104 can also be configured toautomatically sense and/or measure one or more characteristicsassociated with the actuated key or keyboard element. This can includeany type of intrinsic and/or derived characteristic that can be sensedsuch as, without limitation, a duration of one or more stages associatedwith an actuation, a force(s) applied to the key or keyboard element, arate(s) of change associated with the actuation, common multi-key usagepatterns, or the like. By way of example, switch 120 can be configuredto sense the key or keyboard element being depressed and released. Inaddition, switch 120 can be configured to measure characteristicsassociated with these events, such as the duration of various stages ofthe events. More particularly the user might press down on the key orkeyboard element with an actuation force sufficient to cause closure ofswitch 120, and then lift up on and release the key or keyboard elementto cause switch 120 to open. Switch 120 can sense the depression event,the release event, and measure the duration of time between them. Inaddition, switch 120 can also sense a second subsequent depression eventand measure the duration of time between the first and second depressionevent, and/or between the release event and the second depression event.

In at least some embodiments, switch 120 can perform these measurementsby utilizing multiple timers configured to be started and stopped inresponse to switch 120 closing and/or opening. One example of this ispresented below in the context of an actuation cycle that includes threestages:

TABLE-US-00001 Timer 1 Timer 2 Timer 3 Switch Closes Start Start (firstdepression event) Switch Opens Stop Start (release event) Switch ClosesStop Stop (second depression event) Time Duration Duration of Durationof (milliseconds) of Stage 1 Stage 2 Stage 3

Continuing, switch interface 118 can be configured to notifymicroprocessor 116 when the key or keyboard element has been actuated.Microprocessor 116 controls actuator interface 122, which can includedrive electronics configured to apply a drive voltage(s) to actuator124. As described in more below, switch interface 118 can also beconfigured to provide data to adaptive response component 126 associatedone or more of the characteristics sensed and/or measured by switch 120.

In this example, actuator 124 includes an electrically-deformablematerial, and a physical structure that is mounted to a key or keyboardelement in order to facilitate the electrically-deformable material toimpart movement to the actuated key or keyboard element. Moreparticularly, when a drive voltage(s) is applied to actuator 124, theactuator is driven in a manner that imparts single or multi-vectoredmovement to the electrically-deformable material and hence, to the keyor keyboard element with which it is associated. In this regard, theactuator is driven in a manner based on the application of the drivevoltage(s). As such, movement of the actuated key or keyboard elementcan be provided in a controlled manner such that it produces a perceivedacceleration of the key or keyboard element, thus providing the userwith haptic feedback simulating a “snapover” effect.

In this regard, actuator 124 can include any suitable type ofelectrically-deformable material. For example, one suitable type ofelectrically-deformable material is an electroactive polymer (EAP). EAPrefers to a class of polymers which are formulated to exhibit differentphysical and/or electrical behaviors and properties. In general, when avoltage(s) is applied to the EAP, the EAP undergoes a deformation in aparticular direction. This deformation causes the EAP to move in theparticular direction. As such, in the context of actuator 124, movementof the EAP results in single or multi-vectored movement of the actuatedkey or keyboard element. EAP is available from a company namedArtificial Muscle Inc. located in Sunnyvale, Calif.

Another type of suitable electrically-deformable material is anelectrostatic material. Components consisting of this type of materialcan be formed in a shape conducive to providing single or multi-vectoredmovement when a voltage(s) is applied to them. This is due, at least inpart, to the components becoming attracted to one another when thevoltage(s) is applied. This, in turn, causes at least one of thecomponents to move in a direction generally toward another of thecomponents.

Naturally, the nature of the haptic feedback provided by movement ofindividual keys or keyboard elements determines how they “feel” to theuser. The user's preferences in this regard may depend on any number offactors. For example, the user may prefer that keys or keyboard elements“feel” a particular way when they are typing at a slow speed, and “feel”another way when they are typing at a faster speed. For example, asexplained above, haptic feedback provided by traditional keyboards istypically inherent in the movement of a key or keyboard elementassembly, and thus occurs faster when the key or keyboard element isdepressed faster, and slower when the key is depressed slower. As such,the user's preferences might be based on this phenomenon. Therefore, toaccommodate this and/or to allow for synchrony between the user's typingspeed and the corresponding haptic feedback, single or multi-vectoredmovement of a particular key or keyboard element can be adaptivelyselected or adjusted. That is to say, the key or keyboard element can becustomized, by adjusting the nature of the single or multi-vectoredmovement, to provide haptic feedback according to the user's preferencesand/or to simulate that of traditional keys or keyboard elements.

In operation, this can be accomplished in a variety of ways such as,without limitation, disabling haptic feedback and/or adjusting amovement duration(s), output voltage(s), output force(s), and/or traveldistance associated with the key or keyboard element. With respect toadjusting a movement duration(s) in particular, the duration of one ormore sequential phases of the single or multi-vectored movement can beadjusted by applying the drive voltage(s) to actuator 124 such that itis driven in a manner that provides the type of movement desired. In atleast some embodiments, this can be performed dynamically while the useris typing on the key or keyboard element and/or another key or keyboardelement of keyboard unit 104. To facilitate this, adaptive responsecomponent 126 can be configured in a variety of ways.

For example, adaptive response component 126 can be configured tofacilitate manual adjustment, and thus customization, of the single ormulti-vectored movement. More particularly, adaptive response component126 can receive, via host I/O 114, input from computing device 102. Thisinput can represent data that includes one or more user-selected driveparameters for controlling the drive voltage(s) to be applied toactuator 124. In at least some embodiments, these drive parameters candesignate durations, amplitudes, and/or other characteristics of one ormore sequential phases associated with movement of the key or keyboardelement. Furthermore, these drive parameters can be associated with oneor more manually and/or automatically chosen profiles. Adaptive responsecomponent 126 can then instruct microprocessor 116 to cause actuatorinterface 122 to apply, in response to detecting an actuation, a drivevoltage(s) to actuator 124. This drive voltage(s) can be sufficient toimpart movement to the key or keyboard element according to the selecteddrive parameter(s). As such, haptic feedback can be adaptively providedin a manner based on the selected drive parameter(s). In at least someembodiments, the user can adjust these drive parameter(s) via a userinterface provided by one or more of applications 110.

Alternatively or additionally, adaptive response component 126 can beconfigured to collect or receive, from switch interface 118, data sensedand/or measured by switch 120. This data can be associated with one ormore actuation characteristics of the key or keyboard element, and/or ofanother key or key board element of keyboard unit 104. For example, thedata can indicate or include the duration times, movement amplitudes,and/or other characteristics of various stages associated the key orkeyboard element being depressed and released, as described above. Basedon the data, adaptive response component 126 can then utilize analgorithm or other suitable technique to calculate or otherwiseascertain, from the data, one or more drive parameters controlling adrive voltage(s) to be applied. Similar to the selected driveparameters, these ascertained drive parameters can designate durationsof one or more sequential phases associated with movement of the key orkeyboard element. Adaptive response component 126 can then provide theascertained drive parameter(s) to microprocessor 116. Adaptive responsecomponent 126 can also instruct microprocessor 116 to cause actuatorinterface 122 to apply, in response to an actuation being detected, adrive voltage(s) to actuator 124 sufficient to impart movement to thekey or keyboard element according to the ascertained drive parameter(s).As such, haptic feedback can be adaptively provided in a manner based onthe ascertained drive parameters.

To assist the reader in understanding and appreciating this discussion,an example algorithm is provided. This example algorithm is suitable forcomputing drive parameters from data associated with a particular stageof a depression and release event: namely the duration between when anassociated switch opens and then closes. It is to be appreciated andunderstood, however, that this algorithm is but one example, and othersuitable algorithms and/or techniques can be used without departing fromthe spirit and scope of the claimed subject matter.

Example Algorithm:

Drive parameter/Dependent variable: forwardDelayTime (fDT)

Independent variables: keySwitchClosedTime (kSCT), keySwitchOpenTime(kSOT)

Temporary variables: keySwitchClosedTimePrevious (kSCTP),

keySwitchOpenTimePrevious (kSOTP), adaptiveCurveSlope (aCS),

totalSwitchTimePrevious (tSWP),

Performance defining variables/constants: maximum Forward Delay (maxFD),

minimumForwardDelay (minFD), maximumMeasurementPeriod (maxMP),

minimumMeasurementPeriod (minMP),

Initialization

kSCT=50 (milliseconds)

kSOT=50 (milliseconds)

fDT=22;

maxFD=60 (milliseconds)

minFD=2 (milliseconds)

maxMP=1000 (milliseconds)

minMP=100 (milliseconds)

start kSOPT timer

1. Event—User closes switch

a. stop kSOT timer

b. copy kSCT to kSCTP

c. reset kSCT timer

d. start kSCT timer

2. Closed switch is debounced and is now active

a. continue running kSCT for adaptive calculation that happens next time

b. aCS=(maxFD-minFD)/(maxMP-minMP)

i. since the performance variable could change we need to dynamicallycalculate how quickly the adaptive feedback should change depending onvarying user input

c. tSTP=kSCT+kSOT;

i. the total amount of time the last keypress was closed and open

d. fDT=minFD-(aCS*minMP)+tSTP+aCS

i. using a simple equation based solely on the last key open/close timemapped to the 2 dimensions of performance constants determine what thenew delay is

e. if(fDT>maxFD) then fDT=maxFD

i. make sure the new delay is not greater than the defined maximum

f. if(fDT<minFD) then fDT=minFD

i. make sure the new delay is not less than the defined minimum

g. activate haptic output according to defined press profile using fDT

3. Event—User opens switch

a. stop kSCT timer

b. copy kSOT to kSOTP

c. reset kSOT timer

d. start kSOT timer

Open switch is debounced and is now inactive

continue running kSOT timer

activate haptic output according to defined release profile using fDT

Example Key or Keyboard Element

To assist the reader in understanding and appreciating haptic feedbackprovided by single or multi-vectored key or keyboard element movement,FIGS. 2-6 and the following discussion are provided. For discussionpurposes, these figures and the discussion illustrate and describe anexample embodiment implemented using an electrically-deformable materialthat comprises an EAP. However, it is to be appreciated and understoodthat any other suitable electrically-deformable material, such aselectrostatic material for example, can be utilized without departingfrom the spirit and scope of the claimed subject matter.

FIG. 2 illustrates an example key or keyboard element in accordance withone or more embodiments, generally at 200. In this example, key orkeyboard element 200 includes a frame 202 which is mounted or otherwiseconnected to one or more sections of electrically-deformable material204. Frame 202 is supported by an overall housing which contains orotherwise supports a plurality of keys or keyboard elements. It is to beappreciated and understood that in at least some embodiments, whenindividual keys or keyboard elements or groupings thereof are moved, theoverall housing that supports the keys or keyboard elements is notmoved. As such, individual movement of keys or keyboard elements canoccur without movement of the corresponding housing.

In this particular embodiment, electrically-deformable material 204 isdriven by a drive voltage(s) to effect movement of a particularassociated key or keyboard element. To this end, and in this embodiment,key or keyboard element 200 includes a center actuator structure 206which is mounted to or otherwise joined with electrically-deformablematerial 204 to effectively form an actuator. Actuator structure 206, inturn, is fixedly connected to an associated key or keyboard element (notshown) which lies above the plane of the page upon which FIG. 2 appears.

Key or keyboard element 200 also includes one or more electricalcontacts which are used to apply a drive voltage toelectrically-deformable material 204. In the illustrated and describedembodiment, first and second electrical contacts 208, 210 are providedand are in electrical communication with electrically-deformablematerial 204. First and second electrical contacts 208, 210 areconnected with drive electronics used to apply a voltage(s) to thecontact and hence, cause deformation of electrically-deformable material204. Any suitable material can be used for contacts 208, 210. In theillustrated and described embodiment, the electrical contacts comprise acarbon material which is mounted to or otherwise joined with theelectrically-deformable material.

FIG. 3 illustrates key or keyboard element 200 of FIG. 2 in a view thatis taken along line 2-2 in FIG. 2. Like numerals from FIG. 2 have beenutilized to depict like components in this figure. Here, key or keyboardelement 200 includes a user-engageable portion 302 which is the portionthat is typically depressed by the user. The user-engageable portionmay, for example, correspond to a particular key, such as the letter “A”key, a function key, a shift key, and the like. The user-engageableportion includes a surface—here a top surface—that is typically engagedby the user's finger.

In addition, key or keyboard element 200 includes a pair of switchclosure elements 304, 306 forming a switch. The switch closure elementscan be formed from any suitable material examples of which includenon-tactile membranes that include electrically conductive materials.Other materials include, by way of example and not limitation,conductive elastomeric material, carbon material, piezo-membrane,capacitive sensing, capacitive sensing in combination with piezosensing, piezo ink, or any combination thereof. In addition, the switchclosure elements can be located at any suitable location within thekeyboard element. For example, the switch closure elements can belocated between portion 302 and an underlying structure, on top ofportion 302, or any other suitable location. The switch closure elementsare connected to circuitry to detect switch closure.

Referring to FIG. 4, when a user depresses key or keyboard element 200in the direction shown, switch closure elements 304, 306 are broughtinto electrical communication (as indicated by the dashed oval) whichcloses a circuit, thus indicating that the key or keyboard element hasbeen actuated. Circuitry detects the depression event and causes driveelectronics to apply one or more drive voltages (e.g., 0-5000 volts) toelectrically-deformable material 204. The drive electronics can beconfigured in any suitable way. For example, in some embodiments, thedrive circuitry can include switching circuitry that switches a lowvoltage side of a power supply on or off using, for example, one powersupply per key or keyboard element. Inductive transformers,piezoelectric transformers, charge pumps or any other type of voltageboost circuit can be used to generate sufficient voltage supplies ifneeded, as will be appreciated by the skilled artisan. Alternately oradditionally, various solid state devices can be used to switch powerfrom a single voltage supply to individual actuator (e.g. EAP) portionsas required.

When the drive voltage(s) are applied to the electrically-deformablematerial, single or multi-vectored movement is imparted to actuatorstructure 206 and hence, to portion 302.

Specifically, and as perhaps best shown in FIGS. 5 and 6, when a userdepresses the key or a keyboard element sufficient to effect switchclosure, the drive electronics drive the electrically-deformablematerial, and hence the key or keyboard element, in a first directionwhich, in this example, is generally toward the user. In this example,the drive voltage(s) is applied through electrical contact 210.Subsequently, the drive electronics, through electrical contact 208,drive the electrically-deformable material in a second, differentdirection. In this example, the second, different direction is generallyaway from the user. In at least some embodiments, the first directionmoves actuator structure 206 a first distance and a second directionmoves actuator structure 206 a second distance which is greater than thefirst distance. In at least some embodiments, the first distance isabout half the distance of the second distance. In at least someembodiments, the first distance is about ½ millimeter and a seconddistance is about 1 mm.

The electrically-deformable material can be operated in a “single phase”mode or a “dual phase” mode. In a single phase mode, when the materialis electrically driven, the material moves the key or keyboard elementin a desired direction. When the drive voltage is removed, the materialreturns to its original, starting position due to the resiliency of thematerial. In a dual phase mode, the material is driven as describedabove. Of course, multiple other phases can be used by driving thematerial to impart to it movements other than the “back and forth”movement described above.

Example Sequential Phases

As explained above, drive parameters can be selected by a user and/orascertained from data associated with an actuation of a key or keyboardelement. Drive parameters can control a drive voltage(s) to be appliedto the key or keyboard element. The drive voltage(s) and the control ofthem, in turn, is responsible for determining the duration, amplitude,or other aspect of one or more sequential phases of the single ormulti-vectored movement of the key or keyboard element, and thus thenature of the haptic feedback to be provided. To assist the reader inunderstanding and appreciating sequential phases, FIG. 7 and thefollowing discussion are provided.

FIG. 7 illustrates example sequential phases, generally at 700,associated with movement of a key or keyboard element, according to oneor more embodiments. Here, the horizontal axis represents the timeduring which depression and release of key or keyboard element occurs.The vertical axis represents the relative position of an actuator of thekey or keyboard element. Naturally, the duration of each of these phasesdefines what a user will feel at their finger. To enhance a user'shaptic experience, the duration of one or more these phases can becorrelated with the amount of time the user's finger touches, e.g.,remains in contact with, the key or keyboard element. This, in turn,significantly impacts the nature of the haptic response provided to theuser. In at least some embodiments, the duration of these phases can beadjusted to simulate a haptic response similar to that of a traditionalkey or keyboard element employing a collapsible rubber dome assembly byway of simulating vertical dome travel as well as adapting feedbackspeeds to the user's usage speed.

For discussion purposes, example sequential phases 700 are illustratedand described in the context of operating an electrically-deformablematerial, and thus actuator, in a “dual phase” mode. However, it is toappreciated and understood that the principles and techniques describedherein are also applicable to embodiments associated with operating anelectrically-deformable material in a “single phase” mode, and/or inmultiple other phases as well.

In this example, the sequential phases include a press debounce phase702. This phase, which is adjustable, is typically not associated withmovement of the key or keyboard element. Furthermore, as can be seen,the duration of this phase corresponds with a depression eventsufficient to cause closure of a corresponding switch. As such, thisphase is a delay with respect to the movement of the key or keyboardelement that can be applied in response to, and immediately after, thekey or keyboard element being depressed. As a practical example, when auser depresses the key or keyboard element, this phase occurs beforedrive electronics drive the actuator, and hence the key or keyboardelement, in a first direction. In at least some embodiments, theduration of this phase can be adjusted to confirm that a switch closeevent is intended and to simulate a delay similar to “preloading” of adome that is inherent with a traditional key or keyboard element, aswill be appreciated and understood by the skilled artisan.

Following press debounce phase 702 is an on response time phase 704.This phase, which is adjustable, is associated with movement of the keyor keyboard element. More particularly, this phase is defined by thetime it takes for the drive electronics to drive, charge, or otherwiseactivate the actuator in a first direction away from a non-actuatedcenter position to a first actuated position. Note that this time can beseparate from the mechanical response time of the actuator which may befaster or slower than this, and may additionally be adjustable in atleast some embodiments. This causes movement of the key or keyboardelement in the first direction. In at least one embodiment, the firstdirection is generally toward the user.

Following on response time phase 704 is a forward delay phase 706. Thisphase, which is adjustable, may or may not be associated with movementof the key or keyboard element. This phase is a delay after the actuatorhas been electrically enabled to move to the first actuated position.During this delay, the actuator may be moving. For example, if thephysical response time of the actuator is slower than that of itselectrical response time, the actuator may still be traveling to itstarget position. Alternatively or additionally, the actuator may havereached it final position but be oscillating due to dampening of the keyor keyboard element.

Following forward delay phase 706 is an off response time phase 708.This phase, which is adjustable, is associated with movement of the keyor keyboard element. More particularly, this phase is defined by thetime it takes for the drive electronics to drive, charge, or otherwiseactivate the actuator in a second direction, generally opposite thefirst direction, back to the non-actuated center position. This time canbe separate from the mechanical response time of the actuator which maybe faster or slower than this, and may additionally be adjustable in atleast some embodiments. This causes movement of the key or keyboardelement in the second direction. In at least one embodiment, the seconddirection is generally away from the user.

Following off response time phase 708 is a mid-stroke delay phase 710.This phase, which is adjustable, may or may not be associated withmovement of the key or keyboard element. This phase is a delay after thedrive electronics have enabled the actuator to move back to thenon-actuated center position. During this delay, the actuator may bemoving. For example, if the physical response time of the actuator isslower than that of its electrical response time, the actuator may stillbe traveling to its target position. Alternatively or additionally, theactuator may have reached it final position but be oscillating due todampening of the key or keyboard element.

Following mid-stroke delay phase 710 is an on response time phase 712.This phase, which is adjustable, is associated with movement of the keyor keyboard element. More particularly, this phase is defined by thetime it takes for the drive electronics to drive the actuator in thesecond direction away from the non-actuated center position to a secondactuated position. This causes movement of the key or keyboard elementin the second direction. Note that this time can be separate from themechanical response time of the actuator which may be faster or slowerthan this, and may additionally be adjustable in at least someembodiments.

Following on response time phase 712 is a release debounce phase 714.This phase, which is adjustable, is typically not associated withmovement of the key or keyboard element. Instead, this phase is a delayafter the actuator has been electrically enabled to move to the secondactuated position. Furthermore, as can be seen, the duration of thisphase begins with release of the key or keyboard element, causing theswitch to open. As such, it can occur in response to, and immediatelyafter, the release. This delay is programmable, and defines both aperiod of determining that a switch opening event was intentional and aperiod of delay that, for example, simulates the relaxation of the atraditional key or keyboard element dome's over-travel.

Following release debounce phase 714 is an off response time phase 716.This phase, which is adjustable, is associated with movement of the keyor keyboard element. More particularly, this phase is defined by thetime it takes for the drive electronics to drive, charge, or otherwiseactivate the actuator in the first direction away from the secondactuated position and back to the non-actuated center position. Thistime can be separate from the mechanical response time of the actuatorwhich may be faster or slower than this, and may additionally beadjustable in at least some embodiments. This causes movement of the keyor keyboard element in the first direction.

Following off response time phase 716 is a mid-stroke delay phase 718.This phase, which is adjustable may or may not be associated withmovement of the key or keyboard element. This phase is a delay after thekey or keyboard element has moved back to the non-actuated centerposition. During this delay, the actuator may be moving.

Following mid-stroke delay phase 718 is an on response time phase 720.This phase, which is adjustable, is associated with movement of the keyor keyboard element. More particularly, this phase is defined by thetime it takes for the drive electronics to drive, charge, or otherwiseactivate the actuator in the first direction back to or near the firstactuated position. This time can be separate from the mechanicalresponse time of the actuator which may be faster or slower than this,and may additionally be adjustable in at least some embodiments. Thiscauses movement of the key or keyboard element in the first direction.

Following response time phase 720 is a forward delay phase 722. Thisphase, which is adjustable, may or may not be associated with movementof the key or keyboard element. This phase is a delay after the actuatorhas moved back to or near the first actuated position. During thisdelay, the actuator may be moving.

Following forward delay phase 722 is an off response time phase 724.This phase, which is adjustable, is associated with movement of the keyor keyboard element. More particularly, this phase is defined by thetime it takes for the drive electronics to drive, charge, or otherwiseactivate the actuator in the second direction away from the firstactuated position and back to the non-actuated center position. Thistime can be separate from the mechanical response time of the actuatorwhich may be faster or slower than this, and may additionally beadjustable in at least some embodiments. This causes movement of the keyor keyboard element in the second direction.

Example Method

FIG. 8 is a flow diagram that describes steps of a method in accordancewith one or more embodiments. The method can be implemented inconnection with any suitable hardware, software, firmware, orcombination thereof. Furthermore, one or more of the steps of the methodcan be repeated any number of times. In at least some embodiments, themethod can be implemented by a system, such as the example systemillustrated and described above. However, it is to be appreciated andunderstood that the described method can be implemented by systems otherthan that described above without departing from the spirit and scope ofthe claimed subject matter.

Step 800 detects one or more key or keyboard element actuations. Asillustrated and described above, in at least some embodiments anactuation can be detected by sensing that an individual key or keyboardelement has been depressed. Of course, other ways of sensing a switchclosure can be used without departing from the spirit and scope of theclaimed subject matter.

Responsive to detecting one or more actuations at step 800, step 802ascertains one or more drive parameters based on the actuation (s)detected at step 800. As illustrated and described above, in at leastsome embodiments depression and release events for individual actuationsare sensed and characteristics associated with these events aremeasured, such as the duration of one or more stages defined by theseactuation events for example. As explained above, data associated withthe measured characteristics can then be collected and used to ascertainthe drive parameter(s).

Step 804 receives one or more selected drive parameters. As illustratedand described above, in at least some embodiments the user has selectedthe drive parameter(s) by interacting with user interface controlsand/or a so called “wizard” to customize the “feel” of individual keysor keyboard elements of the keyboard. Data designating the selecteddrive parameter(s) can then be sent to, and received by, the keyboard.

Step 806 detects a subsequent actuation of a particular key or keyboardelement. That is to say, this step detects another actuation of the keyor keyboard element that occurs after the one or more actuationsdetected at step 800 occur. Similar to step 800, and as illustrated anddescribed above, one way this can be accomplished is by sensing when anassociated key or keyboard element has been depressed.

Responsive to detecting the subsequent actuation at step 806, step 808imparts movement according to one or more of the drive parameters. Thesedrive parameters can include one or more of the selected driveparameter(s) and/or one or more of the ascertained drive parameters. Asillustrated and described above, in at least some embodiments this canbe accomplished by applying a drive voltage(s) to an associated actuatorsufficient to impart movement to the key or keyboard element accordingto the selected drive parameter(s).

Example User Interface

Having considered the discussion above, consider now an example userinterface presenting controls for adjusting duration settings of one ormore sequential phases associated with movement of individual keys orkeyboard elements of a keyboard. As explained above, the durationsettings can be included in drive parameters for controlling a drivevoltage(s) to be applied to a particular key or keyboard element. This,in turn, can determine the nature of the haptic feedback to be providedby key or keyboard element.

FIG. 9 illustrates an example user interface, generally at 900, inaccordance with one or more embodiments. Here, user interface 900includes several adjustable controls, each control corresponding to aduration setting for a sequential phase. In this example, the controlsinclude a slide-bar for adjusting the settings. Furthermore, theavailable range of settings for each control is defined on the lower endby 0 milliseconds, and on the higher end by either 40 or 60milliseconds. However, it is to be appreciated and understood that anysuitable range of settings and setting units, e.g., sub-milliseconds,can be used without departing from the spirit and scope of the claimedsubject matter. In addition, here the current setting for each controlis shown just above the corresponding slide-bar. Note that in thisexample, the current settings are associated with a correspondingprofile, here shown as “Profile 2” which is bolded and circled. Profile2 is one of many sets, or profiles, of duration settings that can beselected and/or adjusted. In this example, other available profiles arealso available for selection, as depicted in the selectable controlwindow labeled “Effects”. More particularly, the other availableprofiles include those named “Profile 1”, “Profile 3”, “Key Repeat”, and“Machine Gun”. In this regard, it is to be appreciated and understoodthat different individual profiles can have any number of the sameand/or different duration settings.

Naturally, by virtue of being associated with a particular combinationof duration settings, each of these available profiles is associatedwith providing a particular corresponding haptic feedback. As such,certain profiles might be preferable to a particular user in aparticular situation. For example, the speed by which the user is orwill be typing might determine which profile is preferred. Alternativelyor additionally, the type of application that the user is or will beengaged with might determine which profile is preferred. Naturally,certain profiles might thus be used as default profiles for a particularsituation (s). For example, a default profile might be used for a userwhen they begin to type on a keyboard. As such, haptic feedback can beprovided to the user based on duration settings of the default profile.However, based at least in part on characteristics of their typing,e.g., the speed, duration and/or frequency of depression and/or releaseevents associated with individual keys or keyboard elements, anotherprofile might automatically and/or manually replace the default profile,thus changing the haptic feedback provided based on duration settings ofthe new profile. To facilitate the user in adjusting the durationsettings and/or defining profiles with duration settings, any suitableapplication(s) can be employed. By way of example and not limitation,this might include an application providing a so called “wizard” thataccounts for the user's typing style at different typing speeds andassists the user to create default profiles with appropriate durationsettings and/or other types of drive parameters. In at least someembodiments, controls for interacting with the so called “wizard” can beincluded on a user interface, such as on user interface 900 for example.

CONCLUSION

Various embodiments provide a keyboard, such as a physical or virtualkeyboard for example, that adaptively provides haptic feedback to auser. In at least some embodiments, an actuation of a key or keyboardelement of the keyboard is detected. This can be accomplished bydetecting the closure of an associated switch caused by a userdepressing the key or keyboard element. In response to detecting theactuation, an electrically-deformable material is utilized as anactuating mechanism to impart single or multi-vectored movement to thekey or keyboard element according to drive parameters. This movementproduces a perceived acceleration of the key or keyboard element, thusproviding haptic feedback which simulates a “snapover” effect.

In one or more embodiments, the drive parameters can be selected via auser interface. Alternatively or additionally, the drive parameters canbe automatically ascertained from data associated with another actuation(s) of the key or keyboard element. In at least some embodiments, thisdata can indicate the duration, amplitude, and/or other characteristicof one or more stages associated with the key or keyboard element beingdepressed and released.

In one or more embodiments, the single or multi-vectored movement can bedynamically imparted while a user is typing on the key or keyboardelement, and/or on another key or keyboard element of the keyboard.

In one or more embodiments, at least one of the drive parameters candesignate the duration, amplitude, or other aspect of a phase(s) of thesingle or multi-vectored movement. This can include a phase associatedwith movement of the key or keyboard element in a particular directionand/or with a delay before or after the movement.

What is claimed is:
 1. A method for providing adaptive haptic responseto keyboard keys, comprising: sensing actuation of one or more keys of akeyboard; ascertaining at least one ascertained parameter based on theactuation of the one or more keys; sensing subsequent actuation of theone or more keys; and responsive to detecting the subsequent actuating,dynamically imparting vectored movement to the one or more keyssubsequently actuated according to the at least one ascertainedparameter.
 2. The method of claim 1, wherein the dynamically impartingvectored movement to the one or more keys subsequently actuatedcomprises applying a first drive voltage to a first contact coupled toan electrically-deformable material thereby causing the one or more keyssubsequently actuated to move toward a user of the keyboard.
 3. Themethod of claim 2, wherein the dynamically imparting vectored movementto the one or more keys subsequently actuated further comprises removingthe first drive voltage to allow the one or more keys subsequentlyactuated to return to an original position.
 4. The method of claim 2,wherein the dynamically imparting vectored movement to the one or morekeys subsequently actuated further comprises removing the first drivevoltage and applying a second drive voltage to a second contact coupledto the electrically-deformable material thereby causing the one or morekeys subsequently actuated to move away from the user of the keyboard.5. The method of claim 1, further comprising reading at least oneuser-selected parameter from a user profile, wherein the dynamicallyimparting vectored movement comprises dynamically imparting singlevectored movement to the one or more keys subsequently actuatedaccording to the at least one ascertained parameter and the at least oneuser-selected parameter.
 6. The method of claim 5, wherein the readingof the at least one user selected parameter comprises reading one ormore of the following group of user selected parameters: press debounce,release debounce, forward delay 1, forward delay 2, mid-stroke delay 1and mid-stroke delay
 2. 7. The method of claim 5, further comprisingselecting the user profile from a plurality of user profiles based uponthe at least one ascertained parameter.
 8. The method of claim 5,wherein at least one parameter selected from the group consisting of theat least one user-selected parameter and the at least one ascertainedparameter designate a duration that is at least one phase of the singlevectored movement.
 9. A keyboard, comprising: a plurality of keyboardelements; a plurality of switches, wherein each switch of the pluralityof switches is respectively associated with a keyboard element of theplurality of keyboard elements and configured to detect actuations ofthe respective keyboard element; an adaptive response componentconfigured to collect data and ascertain at least one ascertainedparameter based on an actuation of the plurality of keyboard elements;and a plurality of actuators, wherein each actuator of the plurality ofactuators is respectively and operably associated with a keyboardelement of the plurality of keyboard elements, and wherein each actuatoris configured to impart, in response to detecting a subsequent actuationof the respective keyboard element, vectored movement to the respectivekeyboard element according to the at least one ascertained parameter.10. The keyboard of claim 9, wherein the actuator comprises anelectrically-deformable material.
 11. The keyboard of claim 10, whereinthe electrically-deformable material imparts single vectored movement tothe respective keyboard element in response to a first drive voltagebeing applied to a first contact coupled to the electrically-deformablematerial.
 12. The keyboard of claim 10, wherein theelectrically-deformable material imparts multi-vectored movement to therespective keyboard element in response to a first drive voltage beingapplied to a first contact coupled to the electrically-deformablematerial, followed by removal of the first drive voltage and applicationof a second drive voltage being applied to a second contact coupled tothe electrically-deformable material.
 13. The keyboard of claim 9,wherein the one or more of the actuation of the plurality of keyboardelements comprise depression or release events.
 14. The keyboard ofclaim 13, wherein the adaptive response component is further configuredto measure durations of one or more stages associated with thedepression or release events.
 15. The keyboard of claim 12, wherein themulti-vectored movement is first toward a user of the keyboard and thenaway from the user of the keyboard.
 16. The keyboard of claim 12,wherein the electrically-deformable material returns to an originalposition upon removal of the second drive voltage.
 17. A keyboardcontroller, comprising: a switch interface configured to detectactuations of a keyboard element; an adaptive response componentconfigured to collect data and ascertain at least one ascertainedparameter based on the detected actuations of the keyboard element viathe switch interface; and an actuator interface configured to impart, inresponse to the switch interface detecting a subsequent actuation of thekeyboard element, signals causing vectored movement to the keyboardelement according to the at least one ascertained parameter provided bythe adaptive response component.
 18. The keyboard controller of claim17, wherein the actuator interface comprises an electrically-deformablematerial driver configured to drive an actuator associated with thekeyboard element.